package 链表;

import java.util.ArrayList;

/**
 * 给定一个链表的 头节点 head ，请判断其是否为回文链表。
 * <p>
 * 如果一个链表是回文，那么链表节点序列从前往后看和从后往前看是相同的。
 * <p>
 * https://leetcode-cn.com/problems/aMhZSa/
 */
public class 剑指_Offer_II_027_回文链表 {

    public boolean isPalindrome(ListNode head) {
        ArrayList<ListNode> list = new ArrayList<>();
        while (head != null) {
            list.add(head);
            head = head.next;
        }

        int size = list.size();
        int start = 0;
        int end = size - 1;
        while (start < end) {
            if (list.get(start).val != list.get(end).val) return false;
            start++;
            end--;
        }

        return true;
    }
}
